package a_math;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;

/**
 * @author Cheng-02
 * @version V1.0
 * @Package a_math
 * @date 2024/4/6 15:23
 */
public class test10 {
    public static void main(String[] args) {
        //plusandminus();
       // Period1();
        duration();
    }

    /**
     * 计算两个LocalDateTime时间点之间的持续时间。
     * 该方法没有参数，也没有返回值，它主要用于演示如何使用Java 8的日期和时间API来计算两个时间点之间的差异。
     */
    private static void duration() {
        // 定义一个固定的日期时间，这里使用2023年5月21日10点30分作为起始时间
        LocalDateTime ldt1 = LocalDateTime.of(2023, 5, 21, 10, 30, 0);
        // 获取当前时间作为结束时间
        LocalDateTime ldt2 = LocalDateTime.now();
        // 计算两个时间点之间的持续时间
        Duration duration = Duration.between(ldt1, ldt2);

        // 打印持续时间的天数、小时数、分钟数和秒数
        System.out.println(duration.toDays());
        System.out.println(duration.toHours());
        System.out.println(duration.toMinutes());
        System.out.println(duration.toSeconds());


    }

    /**
     * 计算两个日期之间的时期差。
     * 该方法不接受任何参数，也不返回任何值。
     * 它仅演示如何使用LocalDate和Period类来计算日期差，并输出年、月、日的差值。
     */
    private static void Period1() {
        // 创建一个指定的日期
        LocalDate ld1 = LocalDate.of(2023, 5, 21);
        // 获取当前日期
        LocalDate ld2 = LocalDate.now();
        // 计算两个日期之间的时期差
        Period period = Period.between(ld1, ld2);
        // 输出时期差对象
        System.out.println(period);
        // 输出时期差中的年数
        System.out.println(period.getYears());
        // 输出时期差中的月数
        System.out.println(period.getMonths());
        // 输出时期差中的天数
        System.out.println(period.getDays());
    }


    private static void plusandminus() {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now.plusYears(1));//加一年
        System.out.println(now.minusYears(1));//减一年

    }
}
